#ifndef ROLL_DICE_H
#define ROLL_DICE_H

#include <cstdlib>
#include <climits>

//Provides a singe die roll.
//Initilize with standard 6 die.
//Min Value is private.
class RollDice
    {
    protected:
        RollDice(); //Initilize with standard 6 sided die.
        RollDice (size_t );   //Initilize with min and max values.
        virtual ~RollDice() {};
        size_t GetRoll();  //Rolls the die, return a single value.
        size_t GetRoll(int MaxValue);  //Rolls dice with new MaxValue, retains MinValue.
        size_t MaxDieValue;

    private:  //TODO: Need put copy and such here.
        size_t GetRandomNumber();
        size_t RandomNumAddress;
        static const size_t MinDieValue = 1;    //No need for negative die.
        //No need to copy and such.
        RollDice (const RollDice&);
        RollDice& operator=(const RollDice&);
    };

#endif
